#pragma once
#include "vec.h"

class Square {
	public:
		Square() = default;
		void draw() const;
		void setPosition(vec2f& v);
		void setPosition(float x, float y);
		void setSpeed(vec2f& v);
		void setSpeed(float x, float y);

		void update();

		void decelerate();

		void grow();
		void shrink();

		// Getter
		const vec2f& dim() const
		{
			return _dim;
		}

		const vec2f& pos() const
		{
			return _pos;
		}

		const vec2f& speed() const
		{
			return _speed;
		}

		const vec3f& color() const
		{
			return _color;
		}

		// Setter
		vec2f& dim()
		{
			return _dim;
		}

		vec2f& pos()
		{
			return _pos;
		}

		vec2f& speed()
		{
			return _speed;
		}

		vec3f& color()
		{
			return _color;
		}



	private:
		// Coefficient de décélération
		float deceleration = 0.999;

		vec2f _dim;
		vec2f _pos;
		vec2f _speed;
		vec3f _color = vec3f(0, 0, 0);
};
